subroutine init_table(lunit)
  use table_param
  implicit none

  integer,intent(in) :: lunit

  integer :: i

  ! initialize sim_obj
  allocate(sim_obj(default_alloc_sim_obj))
  total_alloc_sim_obj=default_alloc_sim_obj
  n_sim_obj=0
  do i=1,total_alloc_sim_obj
     sim_obj(i)%n_event=0
     sim_obj(i)%n_alloc_event=0
     nullify(sim_obj(i)%event_table_list)
  end do

  ! initialize del_sim_obj
  allocate(del_sim_obj(default_alloc_sim_obj))
  n_del_sim_obj=0

  ! initialize event_table
  allocate(event_table(default_alloc_event_table))
  total_alloc_event_table=default_alloc_event_table
  n_event_table=0

  ! initialize del_event_table
  allocate(del_event_table(default_alloc_event_table))
  n_del_event_table=0

  ! initialize spont_event_table
  allocate(spont_event_table(default_alloc_event_table))
  n_spont_event_table=0

  ! initialize event_profile
  allocate(event_profile(default_alloc_event_profile))
  total_alloc_event_profile=default_alloc_event_profile
  n_event_profile=0
  do i=1,total_alloc_event_profile
     event_profile(i)%external_remain=0
     event_profile(i)%n_event=0
     event_profile(i)%n_alloc_event=0
     nullify(event_profile(i)%event_list)
  end do

  return

end subroutine init_table
